1. Field of the Invention
The current invention relates to electronic memories, and in particular, to the programming of one-time-programmable (OTP) memories.
2. Description of the Related Art
Integrated Circuits (ICs) typically use read-only memory (ROM) to store firmware and other information that does not typically need to be changed. ROM is a type of nonvolatile memory (NVM), i.e., ROM maintains its memory contents even after it is powered off. CMOS ICs can include CMOS-component ROM that is set in the masks used to create the IC. That ROM is consistent across all ICs produced from a particular mask set, but it is difficult to modify that ROM if the firmware changes late in the design process. Furthermore, after the production of an IC, that ROM is not field- or factory-programmable, and consequently, impossible to, e.g., (i) provide with a unique identification number and (ii) update with new firmware.
Alternatively, an IC can include programmable ROM (PROM), which is field-programmable. However, since PROM and CMOS components typically use different manufacturing processes, integrating the two types of components on a single IC die increases the complexity and cost of die manufacturing. Having the CMOS and PROM components on different dies does not increase die manufacturing costs and complexity for each die, but since two dies are required, system complexity and costs increase. For similar reasons, integrating CMOS components with EPROM (erasable PROM) or EEPROM (electronically erasable PROM) NVMs is also problematic.
One-time-programmable (OTP) memory refers to a type of NVM that uses standard CMOS components and can consequently be easily and cheaply integrated with a CMOS circuit on a single die. OTP memory consequently allows for the relatively simple and inexpensive integration on a CMOS IC of a field-programmable ROM. OTP memory can be used, for example, to store an identifier for an IC or store operational program code, such as firmware.
Several types of OTP memory have been developed. One example is XPM (from “eXtra Permanent Memory”) from Kilopass Technology, Inc., of Santa Clara, Calif. XPM utilizes standard dual-oxide CMOS technology. XPM uses an antifuse principle for programming, wherein the conductivity characteristics of programmed components are transformed from a non-conductive state to a conductive state by the application of a sufficiently high voltage or current. An XPM memory cell comprises a thin-oxide transistor. The programming circuits are constructed using thick-oxide transistors. During programming, particular voltages are applied to selected transistors, which cause the gate oxide of those transistors to break down, thus programming the cell.
FIG. 1 shows a sample array of prior art OTP memory cells, comprising NMOS transistors 101, 102, 103, and 104. Vb1 and Vb2 are bit lines, Vwr1 and Vwr2 are read word lines, and Vwp1 and Vwp2 are program word lines. Suppose we want to program selected cell 101 without unintentionally programming unselected cells 102, 103, and 104. One way to do that is to hold (i) selected bit line Vb1 and unselected word lines Vwp2 and Vwr2 at ground potential, and (ii) selected read word line Vwr1 and unselected bit line Vb2 at the core power supply voltage of, e.g., 3.3V, while providing a short, e.g., 50 us, pulse on program word line Vwp1 at the programming voltage of, e.g., 3.3V.
The amplitude and width characteristics of the programming pulse provided on the program word lines are important because departures from specified characteristics could cause programming errors and reduced reliability of the OTP memory by not programming selected cells and/or unintentionally programming unselected cells. In some prior art OTP programming systems, the IC comprising the OTP memory also comprises voltage pump circuitry, which requires additional area and circuits on the IC and additional current to operate the voltage pump. In other prior art OTP programming systems, an external device allows a user to program OTP memory by providing pulses of precise voltage and timing characteristics. If the provided pulses do not have the appropriate characteristics, then irreversible programming errors could result.
If an OTP memory of an IC is programmed by the manufacturer of the IC, then the manufacturer is likely to possess the appropriate devices with the appropriate settings for proper programming of the OTP memory. However, if an OTP memory of an IC is programmed by a customer of the IC manufacturer, then the customer is less likely to have the appropriate equipment with the appropriate settings for proper programming of the OTP memory.